import Vue from 'vue'
import Router from 'vue-router'
import routes from './module'
import ajax from '@api/ajax'
import {QUERY_MENU} from '@api/url'
import ElementUI from 'element-ui'

// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = Router.prototype.push
Router.prototype.push = function push (location) {
  return originalPush.call(this, location).catch(err => err)
}

Vue.use(Router)

let router = new Router({
  // mode: 'history',
  base: '/adhoc',
  routes: routes,
  scrollBehavior () {
    return {
      x: 0,
      y: 0
    }
  }
})

router.afterEach((to, from) => {
    let ticket = ''
    let href = location.href
    console.info(href)
    if (href.indexOf('ticket=') !== -1) {
        let index1 = href.indexOf('ticket=') + 7
        href = href.substr(index1, href.length)
        if (href.indexOf('&') !== -1) {
            let index2 = href.indexOf('&')
            href = href.substr(0, index2)
        }
        if (href.indexOf('#') !== -1) {
            let index3 = href.indexOf('#')
            href = href.substr(0, index3)
        }
        ticket = href
    }
    if (ticket !== 'null' && ticket !== '') {
        // SSO逻辑:
        // 如果存在ticket，就即将ticket存储起来，后面所有往后端发送的请求都要带上这个参数
        sessionStorage.setItem('upp-ticket', ticket)
    }
})
//
// router.beforeEach((to, from, next) => {
//   let ticket = ''
//   let href = location.href
//   if (href.indexOf('ticket=') == -1) {
//     let index1 = href.indexOf('ticket=') + 7
//     href = href.substr(index1, href.length)
//     if (href.indexOf('&') == -1) {
//       let index2 = href.indexOf('&')
//       href = href.substr(0, index2)
//     }
//     if (href.indexOf('#') == -1) {
//       let index3 = href.indexOf('#')
//       href = href.substr(0, index3)
//     }
//     ticket = href
//   }
//   if (ticket !== 'null' && ticket !== '') {
//     // SSO逻辑:
//     // 如果存在ticket，就即将ticket存储起来，后面所有往后端发送的请求都要带上这个参数
//     sessionStorage.setItem('upp-ticket', ticket)
//   }
//   let menuList = []
//   ajax.post(QUERY_MENU, {
//     sysNo: ''
//   }).then(res => {
//     res.data.forEach(item => {
//       item.sons.forEach(son => {
//         menuList.push(son.menuUrl)
//       })
//     })
//     if (to.matched.some(result => result.meta.requiresAuth)) {
//       if (menuList && menuList.length) {
//         if (menuList.indexOf(to.path) > -1) {
//           next()
//         } else {
//           ElementUI.Message.error({
//             message: '您暂无权限访问此页面',
//             duration: 1000
//           })
//           next('/home/databoard')
//         }
//       } else {
//         ElementUI.Message.error({
//           message: '您暂无权限访问此页面',
//           duration: 1000
//         })
//         next('/home/databoard')
//       }
//     } else {
//       next()
//     }
//   })
// })

export default router
